/*
 * Copyright 2009 Fred Sauer
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.allen_sauer.gwt.voices.demo.client;

import com.allen_sauer.gwt.voices.client.Sound;

// CHECKSTYLE_JAVADOC_OFF
public abstract class ThirdPartySound {
  private final String mimeType;
  private Sound sound;

  public ThirdPartySound(String mimeType) {
    this.mimeType = mimeType;
  }

  public abstract String getActualURL();

  public final String getMimeType() {
    return mimeType;
  }

  public final Sound getSound() {
    return sound;
  }

  public final void setSound(Sound sound) {
    assert this.sound == null;
    this.sound = sound;
  }

  public abstract String toHTMLString();

  public abstract ThirdPartySound copyOf();
}
